﻿using System;
using System.Web.UI;
using System.Linq;
using System.Web.UI.WebControls;
using ShoppingCart.Business.Logic;
using ShoppingCart.WebSite.Code;
using SC = ShoppingCart.Business.Entity;

namespace ShoppingCart.WebSite
{
    public partial class Default : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack) return;
            Step = "1";
        }

        protected override void OnLoadComplete(EventArgs e)
        {
            base.OnLoadComplete(e);
            if (Page.IsPostBack) return;
            LoadProductos();
        }

        protected void BtnContinuarClick(object sender, EventArgs e)
        {
            Session["Step"] = "2";
            Response.Redirect("Registrar.aspx");
        }

        protected void DlProductosItemCommand(object source, DataListCommandEventArgs e)
        {
            if(e.CommandName == "Agregar")
            {
                var producto = new SC.Producto
                                   {
                                       IdProducto = Convert.ToInt32(e.CommandArgument),
                                       Nombre = ((Literal) e.Item.FindControl("litNombre")).Text,
                                       Imagen = ((Image)e.Item.FindControl("imgIagen")).ImageUrl,
                                       Cantidad = Convert.ToInt32(((TextBox) e.Item.FindControl("txtCantidad")).Text),
                                       Precio = Convert.ToDecimal(((Literal) e.Item.FindControl("litPrecio")).Text)
                                   };
                AddProducto(producto);
                ScriptManager.RegisterStartupScript(upProductos, GetType(), "Mensaje", "alert('Producto Agregado al Carrito.');", true);
            }
        }

        private void LoadProductos()
        {
            var productos = ProductoDepartamentoManager.Instancia.ListarPorIdDepartamento(IdDepartamento);
            foreach (var producto in productos)
            {
                if (Carrito.Any(p => p.IdProducto == producto.IdProducto))
                    producto.Cantidad = Carrito.Single(p => p.IdProducto == producto.IdProducto).Cantidad;
                else producto.Cantidad = 1;
            }
            BindControl<SC.Producto>.BindDataList(dlProductos, productos);
        }
    }
}
